package com.wuyou.sso.common.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;

/**
 * 租户
 *
 * @author zhengzhouyi
 * @date 2022-06-22 10:50:52
 */
@Data
public class Tenant implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
//    @TableId(type = IdType.ASSIGN_ID)
//    @ApiModelProperty(value = "主键", required = true)
//    @NotNull(message = "id不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 名字
     */
//    @ApiModelProperty(value = "名字")
    private String name;
    /**
     * 责任人
     */
//    @ApiModelProperty("责任人")
    private String duty;
    /**
     * 公司代码
     */
//    @ApiModelProperty("公司代码")
    private String companyCode;
    /**
     * 租户是否需要上架流程
     */
//    @ApiModelProperty("租户是否需要上架流程")
    private Boolean putFlag;

    /**
     * 虚拟托不下架出库
     */
//    @ApiModelProperty(value = "虚拟托不下架出库",notes = "true:不需要下架(特殊流程:库存保留库存信息)，[false/null]:需要下架(正常流程)")
    private Boolean unTrayDownFlag;
    /**
     * 订单类型
     */
//    @ApiModelProperty("订单类型")
    private String operateType;
    /**
     * 租户类型
     */
//    @NotNull(message = "租户类型不能为空")
//    @ApiModelProperty(value = "租户类型")
    private String tenantType;
    /**
     * 货代绑定的仓库列表
     */
//    @ApiModelProperty(value = "货代绑定的仓库")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String warehouses;
    /**
     * 租户是否需要托唯一*
     */
//    @ApiModelProperty("租户是否需要托唯一")
    private Boolean tallyFlag;
    /**
     * 订单类型的简易流程 省去订单审核和任务单分配*
     */
//    @ApiModelProperty("订单类型的简易流程")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String easyFlow;
    /**
     * 租户发送报文类型 多个,隔开 为空则不触发任何报文发送
     */
//    @ApiModelProperty("报文类型")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String messageType;
    /**
     * 监管场所代码
     */
//    @ApiModelProperty("监管场所代码")
    private String superviseCode;
    /**
     * 仓库代码
     */
//    @ApiModelProperty("仓库代码")
    private String warehouseCode;
    /**
     * 是否需要拆托
     */
//    @ApiModelProperty("是否拆托")
    private Boolean splitFlag;
    /**
     * 是否支持线上支付
     */
//    @ApiModelProperty("是否支持线上支付")
    private Boolean payFlag;
    /**
     * 租户汇付id
     */
//    @ApiModelProperty("租户汇付id")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String paymentId;
    /**
     * 是否开通支持线上开票功能
     */
//    @ApiModelProperty("是否开通支持线上开票功能")
    private Boolean openInvoiceFlag;
    /**
     * 是否支持线上开票
     */
//    @ApiModelProperty("是否支持线上开票")
    private Boolean invoiceFlag;
    /**
     * 是否自动锁库*
     */
//    @ApiModelProperty("是否自动锁库")
    private Boolean automaticLockFlag;

//    @ApiModelProperty("托编码自动新增开关(打开后 进仓理货录入托编码不存在自动新增成真实托)")
    private Boolean trayAutoFlag;

//    @ApiModelProperty("堆存天数上限（打开后，超过设置的数则小铃铛提示）")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer storageUpperLimit;

//    @ApiModelProperty(value = "堆存天数上限标识",notes = "true:开启,false:关闭")
    private Boolean storageUpperFlag;

//    @ApiModelProperty("租户关联的开票类型")
    private Integer billType;

//    @ApiModelProperty("是否记忆PDA账号密码")
    private Boolean memorizePasswordsFlag;

//    @ApiModelProperty("数电开票token")
    private String sdToken;

//    @ApiModelProperty("智序港城AppId")
//    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String zxgcAppId;

//    @ApiModelProperty(value = "智序港城标志",notes = "是否开启智序港城预约通道,true:开启,false:关闭")
    private Boolean zxgcFlag;
}
